import {
    aliasOCR,
    applyList,
    applyAdd,
    subjectList,
    regionList,
    H5PayList,
    H5Pay,
    getcode,
    getopenid,
    mpo,
    sendcode,
    getapplyInfor,
    axios,
    Department,
} from "@/api/apply.js";

export default {
    methods: {
        async applyListData(gz) {
            this.loading = true;
            await applyList({ gz, usage: "apply" }).then((res) => {
                this.loading = false;
                if (res.code == 200) {
                    this.fromList = res.data
                    .filter((item) => item.label != "工种")
                    .filter((item) => item.label != "初复审");

                    // 将extra字段结构出来
                    this.fromList.map((item) => {
                        if (item.field_id == "extra") {
                            Object.assign(this.formLabelAlign, { extra: {} });
                            JSON.parse(item.options).map((el) => {
                                Object.assign(this.formLabelAlign, {
                                    [el.field_id]: el.placeholder,
                                });
                                el.fitaber = 'extra'
                                this.fromList.push(el)
                            });
                        }
                    });
                    // 将json字段结构出来
                    JSON.parse(JSON.stringify(this.fromList))
                    .filter((item) => item.field_type == "json")
                    .map((item) => {
                        if (item.field_id != "extra") {
                            if(item.field_id=='cert'){
                                Object.assign(this.formLabelAlign, { cert: {} });
                            }
                            JSON.parse(item.options).map((it) => {
                                it.field_id = it.label
                                this.formLabelAlign[it.field_id];
                                if(item.field_id=='cert'){
                                    it.fitaber = 'cert'
                                }
                                this.fromList.push(it)
                            });
                        }
                    });
                    this.fromList.map((item) => {
                        item.passShow = true;
                        if (
                            this.formLabelAlign.gz == "一般工贸" &&
                            item.label == "职称" &&
                            this.platform("saite")
                        ) {
                            item.options =
                            '[{"e":"高级"},{"e":"中级"},{"e":"初级"},{"e":"无"}]';
                        }
                        // this.formLabelAlign.isShow = item.field_id;
                        if (item.field_type == "datetimeRange") {
                            item.placeholder = ['', "至今"];
                        }
                        if (item.field_id != "extra"&&item.field_type != "json") {
                            this.formLabelAlign[item.field_id] = item.placeholder;
                            
                        }
                        if (item.field_type == "img") {
                            this.formLabelAlign[item.field_id] = "";
                            this.$forceUpdate();
                        }
                        
                        if(item.field_type == "select"){
                            let list = [];
                            try {
                                list = item.options ? JSON.parse(item.options) : [];
                            } catch {
                                list = item.options ? item.options : [];
                            }
                            this.options[item.field_id] = [];
                            list.map((a) => {
                                if (a.e) {
                                    this.options[item.field_id].push(a.e);
                                } else {
                                    this.options[item.field_id].push(a);
                                }
                            });
                        }
                    });
                    if (this.http.indexOf("zaah") != -1) {
                        this.formLabelAlign.subject_id = this.$route.query.id;
                    }
                }
            });
            await subjectList(gz).then((res) => {
               let subjectListTree = res;
                if (this.platform("xtaq") || this.platform("zcaq")) {
                    subjectListTree = res.filter((item) => {
                        return item.id == 794;
                    });
                }
                if (this.platform("hshd") && (gz == "特种作业" || gz == "安全管理")) {
                    var lop = function (list = []) {
                        for (let index = 0; index < list.length; index++) {
                        const item = list[index];
                        if (item.title == "初培") {
                            // item.disabled=true
                            list.splice(index, 1);
                        } else {
                            lop(item.children);
                        }
                        }
                    };
                }
                this.$set( this.options, 'subject_id', subjectListTree);
                
            });
            this.$forceUpdate()
        },
        //
        uploadChange({res,field_id,files,ocr}){
            // console.log(data,'899888');
            if(res.code==200){
                this.formLabelAlign[field_id] = res.data.url
                this.$hint.success(res.msg)
                if(ocr){
                    this.loading = true;
                    const formData = new FormData();
                    formData.append("image", files);
                    aliasOCR(formData).then((res) => {
                    this.loading = false;
                    if (res.code == 200) {
                        // this.$emit('info', res.data)
                        let data = JSON.parse(res.data.body.Data).data.face.data;
                        this.formLabelAlign["username"] = data.idNumber;
                        this.formLabelAlign["nickname"] = data.name;
                        this.formLabelAlign["gender"] = data.sex;
                        console.log(this.formLabelAlign);
                        this.$forceUpdate();
                        this.$toast.success(res.msg);
                    } else {
                        this.$toast.fail("图片格式不支持或图片内容不是身份证");
                        this.formLabelAlign[field_id] = ''
                        // this.$emit('error', res.data)
                    }
                    });
                }
            }else if(res.code==9000){
                this.formLabelAlign[field_id] = ''
            }
        },
        // 打开签名
        openSign(item,evn){
            const {field_id,label} = item
            if (field_id == "jkcns") {
                if (!this.formLabelAlign.nickname) {
                    return this.$hint.error("姓名不能为空");
                }
                if (!this.formLabelAlign.username) {
                    return this.$hint.error("身份证号不能为空");
                }
                if (!this.subjectTittle) {
                    return this.$hint.error("请选择培训科目后再签名");
                }
            }
            if (field_id == "education" && !this.formLabelAlign.education) {
                return this.$hint.error("请选择学历后再签名");
            }
            this.openBookalert(item, label).then((res) => {
                if (res) {
                  this.showsign = field_id
                  this.$forceUpdate()
                }
            });
            
        },
        //获取验证码
        hoveCode() {
            if (!this.formLabelAlign.phone) {
                return this.$hint.error("手机号不能为空");
            }
            this.codeTime = 60;
            this.hascodeYes = false;
            clearInterval(this.timeObj);
            sendcode({
                mobile: this.formLabelAlign.phone,
            }).then((res) => {
                if (res.code == 200) {
                    this.$hint.success("验证码发送成功");
                    
                    this.timeObj = setInterval(() => {
                    if (this.codeTime <= 0) {
                        this.hascodeYes = true;
                        clearInterval(this.timeObj);
                    }
                    this.codeTime--;
                    }, 1000);
                }else{
                    this.hascodeYes = true;
                }
            });
        },
        //燃气主管部门
        deplistFn(){
            Department().then((res) => {
                this.options.dep = res.data;
            });
        },
        // 登录学员端
        login() {
            window.open(this.http + "/user", "_self");
        },
        // 提示信息 内容集合
        openBookalert(data,title){
            let msg = ''  //提示信息
            let text = data.field_id; //提示框头
            let imgPas = false  //开启图片展示
            let images = [] // 需要展示的图片
            if (!this.subjectTitle && text == "cxsm") {
                return this.$hint.error("请先选择培训科目");
            }
            if (text == "cxsm") {
                msg = `本人符合(${this.subjectTitle})人员考试条件，在表中填写的个人信息和提供的身份证明等内容是真实的(本人提供的身份证明等内容由培训机构留存)`;
            }
            if (text == "grcn") {
                if (!this.subjectItem||!this.subjectItem.title) {
                    return this.$hint.error("请先选择培训科目");
                }
                if(this.subjectItem&&this.subjectItem.title&&this.subjectItem.title.includes('初培')){
                    msg ='本人对以上信息的真实性负责，如有隐瞒，相关责任全部由本人承担。'
                }else{
                    msg = `自取证以来一直从事相应作业，没有违章操作造成严重后果，没有2次以上违章行为；没有其他安全生产违法行为受到行政处罚的情况。`;
                }
            }
            if (text == "brsm") {
                msg = `本人声明，以上填写信息及所提交的资料均合法、真实、有效，并承诺对填写的内容负责。`;
            }
            if (text == "cnsx") {
            msg = `1.本人身体健康，无妨碍从事相应特种作业的器质性心脏病、癫痫病、美尼尔氏症、
                    眩晕症、癔病、震颤麻痹症、精神病、痴呆症以及其他疾病和生理缺陷；2.以上所填写的
                    本人信息及提供的身份证复印件、学历证书复印件等材料真实有效；3.本人按《特种作业
                    人员安全技术培训考核管理规定》（国家安全监管总局令第30号）有关规定参加相应的
                    安全技术理论培训和实际操作培训4.以上个人信息和承诺事项以及提供的有关材料，如
                    有弄虚作假或欺骗等行为，自愿被依法撤销《中华人民共和国特种作业操作证》，3年内
                    不再申请办证。`;
            }
            if (text == "sqbqm" && this.formLabelAlign.gz == "特种作业") {
                msg =
                "本人符合《特种作业人员安全技术培训考核管理规定》(国家安全监管总局令第30号)第四条 规定的条件，并按规定参加相应的安全技术理论培训和实际操作培训。";
            }
            if (text == "sqbqm" && this.formLabelAlign.gz == "安全管理") {
                msg =
                "本人符合《生产经营单位安全培训规定》(国家安全监管总局令第3号)有关 规定参加相应的安全培训。";
            }
            if (text == "jkcns") {
                msg =
                "本人身体健康，无妨碍从事相应特种作业的器质性心脏病、癫痫病、美尼尔氏症、眩晕症、癔病、震颤麻痹症、精神病、痴呆症以及其他疾病和生理缺陷。本人对以上信息的真实性负责，如有隐瞒，相关责任全部由本人承担。";
            }
            if (text == "edu_photo") {
                if (!this.formLabelAlign.education) {
                    return this.$hint.error("请选择您的学历!");
                }
                msg = `我承诺：本人具有${this.formLabelAlign.education}学历，以上内容真实有效，如有虚假，本人愿意承担相应责任`;
            }
            if (text == "注意事项" && this.platform("dkaq")) {
                msg =
                "1.报名成功后，一个月以内，扣费100元！（包含视频学习卡，材料费，照片费，人工服务费）一个月以后或参加过培训一律不退费！ 2.理论实操各二次机会，二次不合格，重新报名！ 3.报名开始计算一年内有效，一年内不考，重新报名！（如遇不可抗拒因素，适当延期） 4.报考学员，必须完成各工种培训大纲学时，理论线上视频课程，不完成一律不安排考试，实操线下培训，必须参加。如遇缺课，漏签，代签，不完成一律不安排考试，培训结束后，会收到短信通知，学员自行缴纳考试费，初训（理论考试费50元，实操考试费110元），复训（理论考试费50元）学员延迟缴费，出现上诉以上问题，不能考试，学员自行承担后果！ 5.本校只提供开局培训费发票，考试费发票学员自行打印，（考试费需要报销学员，考试注册时候一定要填写正确的企业名称） 6. 一般工贸和危化经营生产主要负责人，管理员不用缴纳考试费  7.报考人员年龄限制18岁-60岁";
            }
            if (text == "注意事项" && this.platform("xcaq")) {
                msg =
                "1.报名成功后，一周以内，扣费100元！（包含视频学习卡，材料费，照片费，人工服务费）一周以后一律不退费！ 2.理论实操各二次机会，二次不合格，重新报名！ 3.报名开始计算一年内有效，一年内不考，重新报名！（如遇不可抗拒因素，适当延期） 4.报考学员，必须完成各工种培训大纲学时，理论线上视频课程，不完成一律不安排考试，实操线下培训，必须参加。如遇缺课，漏签，代签，不完成一律不安排考试，培训结束后，会收到短信通知，学员自行缴纳考试费，初训（理论考试费50元，实操考试费110元），复训（理论考试费50元）学员延迟缴费，出现上诉以上问题，不能考试，学员自行承担后果！ 5.本校只提供开局培训费发票，考试费发票学员自行打印，（考试费需要报销学员，考试注册时候一定要填写正确的企业名称） 6. 一般工贸和危化经营生产主要负责人，管理员不用缴纳考试费  7.报考人员年龄限制18岁-60岁";
            }
            if (text == "cnx") {
                msg = `本人承诺，以上填写的个人信息和提供的身份证复印件、学历证书复印件及个人健康承诺书内容真实。`;
            }
            
            if (this.platform("kaiqi") && text == "zqtys") {
                imgPas=true
                images =[
                    require("../../components/img/kaiqi/1.png"),
                    require("../../components/img/kaiqi/2.png"),
                ]
            }
            if (
            (this.platform("dlgd") ||
            this.platform("dlld") ||
            this.platform("yjq") ||
            this.platform("dlxh") ||
            this.platform("mkah")) &&text == "CNBook"
            ) {
                imgPas=true
                images =[require("../../components/img/dlld/cnbook.png")]
            }
            if (this.platform("mingda") && text == "zqtys") {
                imgPas=true
                images = [require("../../components/img/mingda/1.png")]
            }
            if (this.platform("ddrc") && text == "zqtys") {
                imgPas=true
                images =  [
                    require("../../components/img/ddrc/1.png"),
                    require("../../components/img/ddrc/2.png"),
                ]
            }
            if (text == "fwxy") {
                imgPas=true
                images = [
                    "https://lyky.taijieyun.com/storage/userimage/lyky/20230523/35e1f152e87a67bac254642ef3eebd2c.png",
                ]
            }
            if (data.options) {
                msg = data.options;
            }

            return this.$hint.dialog({
                title,msg,
                imgPas,images
            })

        },
    },
    created(){
        this.GZList = this.init.selected_gz.split(",");
        if (this.platform("xtaq")) {
            this.GZList = ["大培训"];
        }
        if (this.platform("yali")) {
            this.GZList.map((item, index) => {
                if (item == "一般工贸") {
                    item = "一般行业";
                }
                if (item == "安全管理") {
                    item = "危化品";
                }
            });
        }
        if (this.platform("dkaq") || this.platform("xcaq")) {
            this.GZList.map((item) => {
                if (item == "安全管理") {
                    item = "高危安管";
                }
            });
        }
        this.setting = JSON.parse(this.init.setting);
        if (this.$route.query.name) {
            this.gz = this.$route.query.name;
            window.sessionStorage.setItem("Homegz", this.$route.query.name);
        } else {
            if (
              window.sessionStorage.getItem("Homegz") &&
              window.sessionStorage.getItem("Homegz") != "undefined"
            ) {
              this.gz = window.sessionStorage.getItem("Homegz");
            } else {
              this.gz = this.GZList[0];
            }
        }
        if((this.platform('bosheng')&& this.gz == '燃气从业人员培训') 
        ||this.platform('qiye')){
            this.deplistFn()
        }
        if (this.setting.bmSerm) {
            this.str = JSON.parse(JSON.stringify(this.setting.bmSerm));
            if (!this.platform("bosheng")) {
              this.tipShow = true;
            }
            if (
              this.platform("bosheng") &&
              this.gz.includes("燃气从业")
            ) {
              this.tipShow = true;
            }
        }
        this.applyListData(this.gz);
    }        
}